[Chapter 8] 8.2 Why Rules?
Author: Bryan Costales & Eric Allman
Date: 1999-01-06T18:35:26Z

#

| Chapter 8 Addresses and Rules |

## 8.2 Why Rules?

Rules in a sendmail.cf file are used to rewrite (modify) mail addresses, to detect errors in addressing, and to select mail delivery agents. Addresses need to be rewritten because they can be specified in many ways, yet are required to be in particular forms by delivery agents. To illustrate, consider Figure 8.6 and the address

>     friend@uuhost

#### Figure 8.6: Rules modify addresses, detect errors, and select delivery agents

If the machine `uuhost` were connected to yours over a dial-up line, mail would likely be sent by UUCP, which requires addresses to be expressed in UUCP form:

>     uuhost!friend

Another role of sendmail.cf rules is to detect (and reject) errors on the machine from which the mail originated. This prevents them from propagating over the network. Mail to an address without a username is one such error:

>     @neighbor

It is better to detect this kind of error as early as possible, rather than having the host `neighbor` reject it.

Delivery agents are the means used by sendmail to actually transmit or deliver mail messages. Rules examine the address of each envelope recipient and select the appropriate delivery agent. For example,

>     root@here.us.edu

Here, rules detect that `here.us.edu` is the name of the local machine and then select the `local` delivery agent to perform final delivery to the user root's system mailbox.

In the previous two chapters you were introduced to delivery agent and macro definitions. In this chapter we will begin our coverage of rule sets: the way those rule sets process addresses.

8.1 A Fictional Network |  | 8.3 Rule Sets